﻿package net.area80.utils
{
	import flash.events.Event;
	import flash.net.URLLoader;
	import flash.net.URLRequest;
	
	/**
	* RudeWords
	* @author Wissarut Pimanmassuriya
	*/
	public class RudeWords 
	{
		
		private static var rudeArray:Array;
		
		/**
		 * โหลดคำหยาบจาำกไฟล์ text คำหยาบ คำละบรรทัด
		 * @param	path
		 * @param	callBack
		 */
		public static function loadWords (path:String, callBack:Function=null):void {
				var ldr:URLLoader = new URLLoader();
				ldr.load(new URLRequest(path));
				ldr.addEventListener(Event.COMPLETE, completedHandler);
				function completedHandler (e:Event):void {
					e.currentTarget.removeEventListener(Event.COMPLETE, completedHandler);
					parseText(URLLoader(e.currentTarget).data);
					if (callBack != null) callBack();
				}
		}
		private static function parseText (t:String):void {
			rudeArray = new Array();
			rudeArray = t.split(String.fromCharCode(10)).join("").split(String.fromCharCode(13));
			
			//ตัดช่องว่างบรรทัดว่าง และตัด comment #
			var i:int = 0;
			for (i = 0; i < rudeArray.length; i++) {
					if (rudeArray[i] == "" || rudeArray[i] == " " || rudeArray[i].indexOf("#") == 0) {
						rudeArray.splice(i, 1);
						i--;
					}
					
			}
		}
		/**
		 * ตรวจสอบคำหยาบ ถ้าหยาบคายจะคืนค่า true
		 * @param	string	ข้อความที่จะตรวจสอบ
		 * @return
		 */
		public static function isRude (string:String):Boolean {
				if (!isInit) return false;
				var i:int = 0;
				for (i = 0; i < rudeArray.length; i++) {
					if (string.indexOf(rudeArray[i]) != -1) return true;
				}
				return false;
		}
		/**
		 *	เช็คว่าโหลดคำหยาบเสร็จรึยัง และมีคำหยาบในฐานข้อมูลใหม
		 * */
		public static function get isInit ():Boolean {
				return Boolean(rudeArray && rudeArray.length > 0);
		}
	}
	
}